[LANGUAGE english; PARENT index; PAGE 5]
[C;6;B]		Frequently Asked Questions ... and answers!
		And the known bugs
[J;1;N]
  Note: at anytime, if you think there is a problem you may make a first \
check using the WARNING instruction. This way you may discover a lot \
of strange things...
[C;3][LINK warning]		WARNING
[J;1]

[5]  It says lk was compatible to Slink and DICE, but I checked \
once without success!
[1]
    lk has been build to replace any linker (other linker object \
files and documentations are welcome...) For this reason you need \
a preferences file to ensure one mode or another. This is \
available into 'LK:PREFS/' directory. You can simply rename \
(or copy) the needed file into: 'lk.prefs' and run your \
link again. Usuly the file 'lk.prefs' remains in 'LK:PREFS/' \
directory, but you may move that file into the directory \
from which you link.
    Please refer to the specific linker for more detailed \
informations.


[5]  My file is bigger with SD (or SC) !
[1]
    This may happend. The best way to make the smallest file than \
you can is not always to use SD. Some files will be smaller with only \
XDATA. lk is able to suppress zeroes at the end of each data hunk, \
but SMALLDATA force all hunks to be linked one after another. This \
means zeroes will be suppressed only in the last data hunk.
    The best way to know the best solution is to check each one.


[5]  My resident crash or does not run properly:
[1]
    You probably forgot to use the PURE flag. This flag will force \
lk to generate a table of relocation offset for the near data hunk. \
That table is saved at the end of the hunk (Note that it usuly \
starts where the BSS was.)
    This table is needed if you use SAS/C 'cres.o' object file.
    Because of this table, link an executable file with any option \
which change the data hunk organization may generate an invalid \
program.


[5]  The command line generates errors:
[1]
    The command line is not completly compatible to any other \
linker. This would be hard to do so while each of them has a \
specific way to do that. Then please, refer to the documentation \
if you have any particuliar problem.
    For instance Slink enable you to use any number of FROM or \
ROOT instructions. On my side I create a warning and files \
following the second FROM or ROOT will not be part of the link.


[5]  Automatic file type:
[1]
    If you use the AUTOLIBRARY flag you should avoid the \
LIBRARY (and also LIB/-l) instruction. This will ensure you that \
the libraries are used in the given order.


[5]  The near data hunk:
[1]
    Because lk tries to make its best in order to produce the \
smallest possible executable, the near data hunks may not be \
ordered like you thought. This is not a problem if you do not \
have to care about the DATA hunks order. This is the case most \
of the time.


[5]  Strange things happend when I installed QuickDOS!
[1]
    This is possible. QuickDOS is used by lk in a special way \
which some times generates some kind of problems. Those might \
be a misfunction of patterns, or the impossibility to load the \
same file twice (which should not be useful.) Usuly this can \
simply be avoid with the use of QDSTOP keyword:
[C;3][LINK qdstop]		QDSTOP
[J;1]

[5]  Compatibility with DICE 2.06.35
[1]
    The option '-frag' of dice will not split the autoinit and \
autoexit hunks. lk does not actually do that, it really split \
every hunks.
    The NOEMPTYHUNK option will generate a wrong output file \
when you link with DICE object files. Those uses initilisation \
and exit code in a very special way and emptyhunks are \
necessary for that purpose (Note that no empty hunk is \
generated into the output file however.)


[5]  Compatibility with Slink of SAS any version
[1]
    You may find some instructions which differ from Slink. All \
functions from Slink are available but all cannot be used the \
same way. There is a brief list:
[L;3][LINK chip]	    CHIP
[LINK define]		    DEFINE
[LINK fast]		    FAST
[LINK map]		    MAP
[LINK hunk]		    MAXHUNK
[LINK nodebug]		    NODEBUG (Use STRIPDEBUG instead)
[LINK overlay]		    OVERLAY/END
[LINK createlibrary]	    PRELINK
[LINK quiet]		    QUIET
[LINK xref]		    XREF
[J;1]
    The overlays of lk are very specific to it-self and \
are for sure a lot more viable. If you had some overlaid \
executables, you may have some good suprises...

    If you created your own startup file, you will probably \
have some trouble if you use the default preferences files \
'slink.prefs'. This is due to the set-up available in that \
preferences file, it suppose that you use the default 'c.o' \
or another default SAS startup. Thank you to refer you to \
each instruction present into that preference file to \
see which are and which are not correct with your own \
startup file.


[5]  Compatibility Blink/Slink with SAS 4.xx
[1]
    I know, because I worked out on that particular point, \
that lk may include the DATA long word '_DOSBase' within the \
BSS hunk. This means it will be cleared by the little loop \
which reset the BSS hunk. To be sure to avoid that bug \
you may clear the BSS hunk at the beginning of your 'c.a' \
file, before to open dos.library (like DICE does) or put another \
value than zero inside the DOSBase variable (which is an ugly \
technic) to be sure it will not be part of the BSS hunk.
    This can happend because lk, to create XDATA hunks, does \
not take care of DATA/BSS hunks but check the end of the \
final hunks and check back cleared longs.
